home *** CD-ROM | disk | FTP | other *** search
/ Your Apple Games Gallery 1 / Your Apple Games Gallery (Side B)(MicroSPARC, Inc.)(1988).do / WORD.FIND.bas < prev   
BASIC Source File  |  2021-12-11  |  14KB  |  343 lines

  1. 10  REM     **************************
  2. 20  REM     *       WORD.FIND        *
  3. 30  REM     * BY DAVID E. FAHNESTOCK *
  4. 40  REM     *   COPYRIGHT (C) 1983   *
  5. 50  REM     *   BY MICROSPARC, INC   *
  6. 60  REM     *  CONCORD, MA.  01742   *  
  7. 70  REM     **************************
  8. 80  CLEAR : ONERR  GOTO 3300
  9. 90 D$ =  CHR$(4)
  10. 100  TEXT : HOME : PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC. **"
  11. 110  VTAB 11
  12. 120  HTAB 18: PRINT "W O R D"
  13. 130  VTAB 15
  14. 140  HTAB 18: PRINT "F I N D"
  15. 150  VTAB 15
  16. 160  VTAB 22: HTAB 6: PRINT "-- BE SURE CAPS LOCK IS DOWN --"
  17. 170  FOR H = 1 TO 1000: NEXT 
  18. 180  VTAB 7
  19. 190  PRINT  TAB( 12)"S T D J W B O V S P"
  20. 200  PRINT 
  21. 210  PRINT  TAB( 12)"R B X V S Z B L E G"
  22. 220  PRINT 
  23. 230  PRINT  TAB( 12)"H U Q W O R D G T V"
  24. 240  PRINT 
  25. 250  PRINT  TAB( 12)"H P L A S Q I W L N"
  26. 260  PRINT 
  27. 270  PRINT  TAB( 12)"T O Z F I N D B I T"
  28. 280  PRINT 
  29. 290  PRINT  TAB( 12)"B R Y I S G W J O P"
  30. 300  PRINT 
  31. 310  PRINT  TAB( 12)"G J R I M X Q Z S C"
  32. 320 X = X +1
  33. 330  FOR H = 1 TO 1000: NEXT : IF X < >3  THEN  GOTO 100
  34. 340  VTAB 24: PRINT "PRESS RETURN TO CONTINUE ";: GET SE$: PRINT 
  35. 350  HOME : GOSUB 2400: IF SE$ = "P"  THEN 860
  36. 360  HOME 
  37. 370  INPUT "ENTER TITLE OF PUZZLE ";T$
  38. 380  VTAB 3: PRINT "ENTER THE NUMBER OF COLUMNS IN PUZZLE": PRINT "(5-40)";
  39. 390  INPUT B$:C =  VAL(B$)
  40. 400  IF C <5  OR C >40  THEN 380
  41. 410  VTAB 6: PRINT "ENTER THE NUMBER OF ROWS IN PUZZLE": PRINT "(5-40)";
  42. 420  INPUT B$:R =  VAL(B$)
  43. 430  IF R <5  OR R >40  THEN 410
  44. 440  PRINT 
  45. 450  VTAB 9: PRINT "ENTER THE NUMBER OF WORDS TO FIND (1-40)"
  46. 460  INPUT B$:N =  VAL(B$): IF N <1  OR N >40  THEN 450
  47. 470  REM    ******DATA INITIATION******
  48. 480 CL$ =  CHR$(34): REM   QUOTATION MARK
  49. 490  DIM CL$(N),W$(N),LL$(40,40),L$(40,40),A$(26): IF SE$ = "P"  THEN 3150
  50. 500  REM  *** INITIALIZE ALPHABET ***
  51. 510  FOR L = 65 TO 90
  52. 520 I = I +1
  53. 530 A$(I) =  CHR$(L)
  54. 540  NEXT L
  55. 550  HOME : PRINT "WORDS CAN BE UP TO 15 CHARACTERS LONG": PRINT "AND MUST CONTAIN ONLY LETTERS."
  56. 560  FOR K = 1 TO N
  57. 570  PRINT "ENTER WORD # "K
  58. 580  INPUT W$(K):LW =  LEN(W$(K)): IF LW = 0  THEN  PRINT  CHR$(7);: GOTO 580
  59. 590  IF LW >15  THEN  PRINT  CHR$(7): PRINT "  WORD TOO LONG!": GOTO 570
  60. 600  FOR I = 1 TO LW: IF  ASC( MID$ (W$(K),I)) >64  AND  ASC( MID$ (W$(K),I)) <91  THEN 620
  61. 610  PRINT "  ILLEGAL CHARACTER!":I = L: NEXT I: GOTO 570
  62. 620  NEXT I
  63. 630  IF CL = 0  THEN 680
  64. 640  PRINT "ENTER CLUE"
  65. 650  PRINT "___________________________________[";
  66. 660  POKE 36,0: GOSUB 2670
  67. 670 CL$ =  CHR$(34): REM  *** QUOTATION MARK ***
  68. 680  NEXT K
  69. 690  HOME 
  70. 700  REM  *** FILLS MATRIX WITH PERIODS ***
  71. 710 EF = 3:I = 1:J = 1
  72. 720 L$(I,J) = "."
  73. 730 J = J +1
  74. 740  IF J < = R  THEN 720
  75. 750 I = I +1:J = 1
  76. 760  IF I < = C  THEN 720
  77. 770 T = 0
  78. 780 K = 1
  79. 790  REM  *** CLEAR SCREEN AND SET TOP MARGIN TO 16 ***
  80. 800  HOME : POKE 34,16
  81. 810  VTAB 12: HTAB 13: PRINT "PLEASE STAND-BY"
  82. 820  PRINT : HTAB 4: PRINT "WHILE I TRY TO INSERT THESE WORDS"
  83. 830  PRINT : HTAB 12: PRINT "MATRIX SIZE "C" X "R
  84. 840  PRINT : HTAB 16: PRINT K SPC( 2)W$(K)
  85. 850  GOTO 1340
  86. 860 K = K +1
  87. 870  IF K < = N  THEN 800
  88. 880  REM  *** TURN ON PRINTER ***
  89. 890  TEXT : HOME : VTAB 12: PRINT "WHAT PRINTER ARE YOU USING:": PRINT : PRINT : PRINT "1. IMAGEWRITER/PROWRITER": PRINT "2. EPSON": PRINT : GET PZ$: PRINT 
  90. 900  IF PZ$ < >"1"  AND PZ$ < >"2"  THEN  GOTO 890
  91. 910  POKE 34,0: HOME : VTAB 12: PRINT  TAB( 13)"TURN ON PRINTER": PRINT D$;"PR#1": PRINT  CHR$(9) +"80N"
  92. 920  REM     ****TURN ON EMPHASIZE MODE ****
  93. 930  IF PZ$ = "1"  THEN  PRINT  CHR$(27)"!": HOME : GOSUB 1250
  94. 940  IF PZ$ = "2"  THEN  PRINT  CHR$(27)"E": HOME : GOSUB 1250
  95. 950  GOSUB 2080
  96. 960  PRINT 
  97. 970  PRINT 
  98. 980  FOR J = 1 TO R
  99. 990  FOR I = 1 TO C
  100. 1000  PRINT LL$(I,J)" ";
  101. 1010  NEXT I
  102. 1020  PRINT 
  103. 1030  NEXT J
  104. 1040  REM       **** TURN OFF EMPHASIZED MODE ****
  105. 1050  IF PZ$ = "1"  THEN  PRINT  CHR$(27); CHR$(34): PRINT  CHR$(12): REM  FORM FEED
  106. 1060  IF PZ$ = "2"  THEN  PRINT  CHR$(27)"F": PRINT  CHR$(12): REM  FORM FEED
  107. 1070  REM  **** TURN OFF PRINTER ****
  108. 1080  PRINT : PRINT : PRINT D$;"PR#0"
  109. 1090  HOME : IF SE$ = "P"  THEN 1200
  110. 1100  VTAB 12: INPUT "WOULD YOU LIKE TO SAVE THIS PUZZLE?(Y/N)";SE$
  111. 1110  IF SE$ = "N"  THEN 1190
  112. 1120  IF SE$ < >"Y"  THEN 1100
  113. 1130  HOME : VTAB 12
  114. 1140 EF = 2: PRINT : PRINT "ENTER NAME OF PUZZLE --- OR ---": PRINT "'?' FOR CATALOG ";: INPUT "";DS$: IF DS$ =  CHR$(13)  THEN 1130
  115. 1150  IF DS$ =  CHR$(63)  THEN  PRINT D$ LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76)): PRINT : GOTO 1140
  116. 1160 NF = 1: IF  LEN(DS$) >0  THEN  FOR NC = 1 TO  LEN(DS$):NA =  ASC( MID$ (DS$,NC,1)):NF = ((NA >64  AND NA <91)  OR (NA = 46)  OR (NA >47  AND NA <58  AND NC >1))  AND NF = 1: NEXT 
  117. 1170  IF  LEN(DS$) >15  OR NF = 0  THEN  PRINT  CHR$(7): PRINT "INVALID NAME! PRESS RETURN TO CONTINUE ";: GET DS$: PRINT : GOTO 1130
  118. 1180  GOTO 2770
  119. 1190  HOME 
  120. 1200  VTAB 12: INPUT "WOULD YOU LIKE TO CREATE ANOTHER PUZZLE? (Y/N) ";SE$
  121. 1210  IF SE$ = "Y"  THEN  RUN 
  122. 1220  IF SE$ < >"N"  THEN 1200
  123. 1230  HOME : VTAB 12: HTAB 17: PRINT "GOOD BYE!";: POKE 216,0: END 
  124. 1240  REM  ****** PUZZLE PRINT ROUTINE ******
  125. 1250  FOR J = 1 TO R
  126. 1260  FOR I = 1 TO C
  127. 1270  PRINT L$(I,J)" ";
  128. 1280 LL$(I,J) = L$(I,J)
  129. 1290  NEXT I
  130. 1300  PRINT 
  131. 1310  NEXT J
  132. 1320  IF FF = 1  THEN  PRINT  CHR$(12);: REM  *** FORM FEED ***
  133. 1330  RETURN 
  134. 1340  REM  ****** WORD BREAKDOWN ROUTINE ******
  135. 1350 L0 =  LEN(W$(K))
  136. 1360  REM  ****** RANDOM SELECTION OF DIRECTION ******
  137. 1370  IF T <100  THEN 1390
  138. 1380  GOSUB 2330: GOTO 720: REM  *** WORD WILL NOT FIT--EXPAND MATRIX AND START OVER ***
  139. 1390 T = T +1:P = 1
  140. 1400 P0 = 1
  141. 1410 Q =  -1
  142. 1420  IF  RND(1) < = .5  THEN 1440
  143. 1430 Q = 1
  144. 1440 Q0 =  -1
  145. 1450  IF  RND(1) < = .5  THEN 1470
  146. 1460 Q0 = 1
  147. 1470 D = 2
  148. 1480  IF Q < >1  THEN 1500
  149. 1490 P = 0
  150. 1500  IF Q0 < >1  THEN 1520
  151. 1510 P0 = 0
  152. 1520  IF  RND(1) <.75  THEN 1540
  153. 1530 D = 1
  154. 1540  IF  RND(1) >.25  THEN 1560
  155. 1550 D = 0
  156. 1560  REM  ****** RANDOM SELECTION OF START POINT ******
  157. 1570 C0 = C
  158. 1580 R0 = R
  159. 1590  IF D < >1  THEN 1610
  160. 1600 R0 = R -L0
  161. 1610  IF D < >0  THEN 1630
  162. 1620 C0 = C -L0
  163. 1630  IF D < = 1  THEN 1660
  164. 1640 R0 = R -L0
  165. 1650 C0 = C -L0
  166. 1660  IF C0 < >C  THEN 1680
  167. 1670 P0 = 0
  168. 1680  IF R0 < >R  THEN 1700
  169. 1690 P = 0
  170. 1700 Z1 = ( RND(1) *R0/100 +.01) *100 +P *L0
  171. 1710 Z2 = ( RND(1) *C0/100 +.01) *100 +P0 *L0
  172. 1720 X1 =  ABS( INT(Z1))
  173. 1730 X2 =  ABS( INT(Z2))
  174. 1740  REM  ****** ENTRY OF WORD IN THE PUZZLE ******
  175. 1750  IF D = 1  THEN 1970
  176. 1760  IF D = 0  THEN 1870
  177. 1770  FOR I = 1 TO L0
  178. 1780  IF L$(X2 +(I -1) *Q0,X1 +(I -1) *Q) = "."  THEN 1800
  179. 1790  IF L$(X2 +(I -1) *Q0,X1 +(I -1) *Q) < > MID$ (W$(K),I,1)  THEN 1360
  180. 1800  NEXT I
  181. 1810 T = 0
  182. 1820  FOR I = 1 TO L0 -1
  183. 1830 L$(X2 +I *Q0,X1 +I *Q) =  MID$ (W$(K),I +1,1)
  184. 1840  NEXT I
  185. 1850 L$(X2,X1) =  MID$ (W$(K),1,1)
  186. 1860  GOTO 2060
  187. 1870  FOR I = 1 TO L0
  188. 1880  IF L$(X2 +(I -1) *Q0,X1) = "."  THEN 1900
  189. 1890  IF L$(X2 +(I -1) *Q0,X1) < > MID$ (W$(K),I,1)  THEN 1360
  190. 1900  NEXT I
  191. 1910 T = 0
  192. 1920  FOR I = 1 TO L0 -1
  193. 1930 L$(X2 +I *Q0,X1) =  MID$ (W$(K),I +1,1)
  194. 1940  NEXT I
  195. 1950 L$(X2,X1) =  MID$ (W$(K),1,1)
  196. 1960  GOTO 2060
  197. 1970  FOR I = 1 TO L0
  198. 1980  IF L$(X2,X1 +(I -1) *Q) = "."  THEN 2000
  199. 1990  IF L$(X2,X1 +(I -1) *Q) < > MID$ (W$(K),I,1)  THEN 1360
  200. 2000  NEXT I
  201. 2010 T = 0
  202. 2020  FOR I = 1 TO L0 -1
  203. 2030 L$(X2,X1 +I *Q) =  MID$ (W$(K),I +1,1)
  204. 2040  NEXT I
  205. 2050 L$(X2,X1) =  MID$ (W$(K),1,1)
  206. 2060  GOTO 860
  207. 2070  REM  ****** FILL OF REMAINING POSITIONS ******
  208. 2080  FOR I = 1 TO C
  209. 2090  FOR J = 1 TO R
  210. 2100  IF LL$(I,J) > <"."  THEN 2130: REM   *** IF PERIOD IS FOUND, REPLACE WITH RANDOM LETTER ***
  211. 2110 Z1 =  INT(26 * RND(1)) +1
  212. 2120 LL$(I,J) = A$(Z1)
  213. 2130  NEXT J
  214. 2140  NEXT I
  215. 2150  REM  *** CENTER TITLE ON PAGE AND PRINT IN EXPANDED MODE ***
  216. 2160  VTAB 2: HTAB 35 - LEN(T$)/2: PRINT  CHR$(14);T$: PRINT  CHR$(15)
  217. 2170  REM  *** PRINT WORDS OR CLUES ***
  218. 2180  PRINT :NU = 0:I = 20
  219. 2190  IF CC = 0  AND CL = 1  THEN CL = 0: GOTO 2210
  220. 2200  IF CL = 1  THEN I = 40
  221. 2210  FOR K = 1 TO N
  222. 2220  IF CL = 0  THEN  PRINT "("K") "W$(K);: GOTO 2260
  223. 2230  IF SE$ < >"P"  THEN N1 =  LEN(CL$(K)): GOTO 2250
  224. 2240 N1 =  LEN(CL$(K)) +1: REM  PREVENTS FIRST LETTER OF CLUE FROM BEING CHOPPED WHEN READING FROM DISK
  225. 2250  PRINT "("K") " RIGHT$(CL$(K),N1 -1);: GOTO 2270: REM   CHOPS OFF QUOTATION MARK BEFORE PRINTING
  226. 2260  POKE 36,I:NU = NU +1::I = I +20: GOTO 2280: REM      *** HORIZ. TAB FOR LIST OF WORDS ***
  227. 2270  POKE 36,I:I = I +40:NU = NU +1: GOTO 2300: REM  *** HORIZ. TAB FOR CLUES ***
  228. 2280  IF NU = 4  THEN NU = 0:I = 15: PRINT 
  229. 2290  GOTO 2310
  230. 2300  IF NU = 2  THEN NU = 0:I = 40: PRINT 
  231. 2310  NEXT K
  232. 2320  RETURN 
  233. 2330  HOME 
  234. 2340  REM  ****PUZZLE EXPANSION****
  235. 2350 R = R +1:C = C +1
  236. 2360  VTAB 16: HTAB 12: PRINT "MATRIX SIZE "R" X "C
  237. 2370 I = 1:J = 1
  238. 2380  RETURN 
  239. 2390  REM   ****** INSTRUCTIONS ******
  240. 2400  PRINT  TAB( 4)"WORD FIND IS AN ADAPTION OF A": PRINT "PROGRAM CALLED ";: PRINT  CHR$(34);: PRINT "WORD GAME";: PRINT  CHR$(34);: PRINT " THAT APPEARED";: PRINT "IN THE BOOK ";: PRINT  CHR$(34);: PRINT "BASIC COMPUTER PROGRAMS FOR";
  241. 2410  PRINT "THE HOME";: PRINT  CHR$(34);: PRINT " BY CHARLES D. STERNBERG.": PRINT "IMPROVEMENTS HAVE BEEN MADE IN THE": PRINT "ORIGINAL PROGRAM TO MAKE IT MORE USEFUL": PRINT "AND EASIER TO USE.": PRINT 
  242. 2420  PRINT  TAB( 4)"ONE  OF THE IMPROVEMENTS CAUSES THE": PRINT "COMPUTER TO AUTOMATICALLY ENLARGE THE": PRINT "SIZE OF THE MATRIX, TO ACCOMMODATE THE": PRINT "NUMBER AND THE SIZE OF THE WORDS TO BE": PRINT "HIDDEN.": PRINT 
  243. 2430  PRINT  TAB( 4)"START WITH A MATRIX SIZE THAT IS": PRINT "SLIGHTLY TOO SMALL FOR THE NUMBER OF": PRINT "WORDS CHOSEN. FOR EXAMPLE, YOU WANT TO": PRINT "USE FIFTEEN (15) WORDS. START OUT WITH": PRINT "TEN (10) COLUMNS AND TEN (10) ROWS. THE
  244. 2440  PRINT "PROGRAM WILL AUTOMATICALLY EXPAND THE": PRINT "ROWS AND COLUMNS UNTIL THE WORDS FIT."
  245. 2450  PRINT : PRINT  TAB( 7)"PRESS RETURN TO CONTINUE ";
  246. 2460  GET SE$
  247. 2470  HOME : VTAB 1
  248. 2480  PRINT  TAB( 4)"ONCE A PUZZLE HAS BEEN CREATED IT CAN";: PRINT "BE SAVED ON DISK FOR LATER USE.": PRINT 
  249. 2490  PRINT  TAB( 4)"YOU HAVE THE CHOICE OF CREATING": PRINT "EITHER ONE OF TWO PUZZLES. THE FIRST": PRINT "PUZZLE WILL PRINT A LIST OF THE WORDS": PRINT "THAT ARE TO BE LOCATED IN THE PUZZLE.": PRINT "THE SECOND PUZZLE WILL PRINT ONLY A LIST";
  250. 2500  PRINT "OF THE CLUES FOR EACH HIDDEN WORD."
  251. 2510  PRINT : PRINT  TAB( 4)"(EXAMPLE) THE HIDDEN WORD IS FIG, THE";: PRINT "CLUE COULD BE----";: PRINT "ADAMS FIRST CLOTHES.": PRINT "(GEN. 3:7)"
  252. 2520  VTAB 16: INPUT "WOULD YOU LIKE TO USE CLUES? (Y/N) ";SE$
  253. 2530  IF  LEFT$(SE$,1) = "N"  THEN CL = 0:CC = 0: GOTO 2560
  254. 2540  IF  LEFT$(SE$,1) < >"Y"  THEN 2520
  255. 2550 CL = 1:CC = 1
  256. 2560  VTAB 18: PRINT "WOULD YOU LIKE THE SOLUTION TO BE ": INPUT "PRINTED ON A SEPARATE SHEET? (Y/N) ";SE$
  257. 2570  IF  LEFT$(SE$,1) = "Y"  THEN FF = 1: GOTO 2600
  258. 2580  IF  LEFT$(SE$,1) < >"N"  THEN 2560
  259. 2590 FF = 0
  260. 2600  VTAB 21: CALL  -958: INPUT "WOULD YOU LIKE TO CREATE A NEW PUZZLE ORUSE A PREVIOUS ONE? (N/P) ";SE$
  261. 2610  IF SE$ = "N"  THEN 2660
  262. 2620  IF SE$ < >"P"  THEN 2600
  263. 2630 EF = 1: PRINT : PRINT "ENTER NAME OF PUZZLE --- OR ---": PRINT "'?' FOR CATALOG ";: INPUT "";DS$: IF DS$ = ""  THEN 2600
  264. 2640  IF DS$ =  CHR$(63)  THEN  PRINT D$ LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76)): GOTO 2630
  265. 2650  GOSUB 3030
  266. 2660  RETURN 
  267. 2670  REM                          
  268. 2680  REM  *** THE FOLLOWING ROUTINE CONCATENATES A QUOTATION MARK ONTO CL$ ALLOWING COMMAS AND COLONS TO BE USED IN YOUR CLUES ***
  269. 2690  REM  *** INPUT ANYTHING ROUTINE ***
  270. 2700  REM                          
  271. 2710  REM                          
  272. 2720  GET C$: PRINT C$;: IF C$ =  CHR$(13)  THEN  RETURN 
  273. 2730  IF C$ =  CHR$(8)  THEN CL$ =  LEFT$(CL$, LEN(CL$) -1): GOTO 2720
  274. 2740 CL$ = CL$ +C$
  275. 2750 CL$(K) = CL$
  276. 2760  GOTO 2720
  277. 2770  REM  *** PUZZLE SAVE ***
  278. 2780  PRINT D$;"OPEN";DS$: PRINT D$"CLOSE";DS$
  279. 2790  PRINT D$;"DELETE";DS$
  280. 2800  PRINT D$;"OPEN";DS$
  281. 2810  PRINT D$;"WRITE";DS$
  282. 2820  PRINT R
  283. 2830  PRINT C
  284. 2840  PRINT K
  285. 2850  PRINT CL
  286. 2860 N = K -1
  287. 2870  PRINT N
  288. 2880  PRINT T$
  289. 2890  FOR I = 1 TO N
  290. 2900  PRINT W$(I)
  291. 2910  IF CL = 1  THEN  PRINT CL$(I)
  292. 2920  NEXT I
  293. 2930  FOR J = 1 TO R
  294. 2940  FOR I = 1 TO C
  295. 2950  PRINT L$(I,J)
  296. 2960  NEXT I
  297. 2970  NEXT J
  298. 2980  FOR I = 1 TO 26
  299. 2990  PRINT A$(I)
  300. 3000  NEXT I
  301. 3010  PRINT D$;"CLOSE"DS$
  302. 3020  GOTO 1190
  303. 3030  REM  *** PUZZLE READ ***
  304. 3040  PRINT D$;"VERIFY";DS$
  305. 3050  PRINT D$;"OPEN";DS$
  306. 3060  PRINT D$;"READ";DS$
  307. 3070  INPUT R
  308. 3080  INPUT C
  309. 3090  INPUT K
  310. 3100  INPUT CL
  311. 3110 N = K -1
  312. 3120  INPUT N
  313. 3130  INPUT T$
  314. 3140  GOTO 490: REM  *** DIM ARRAYS ***
  315. 3150  FOR I = 1 TO N
  316. 3160  INPUT W$(I)
  317. 3170  IF CL = 1  THEN  INPUT CL$(I)
  318. 3180  NEXT I
  319. 3190  FOR J = 1 TO R
  320. 3200  FOR I = 1 TO C
  321. 3210  INPUT L$(I,J)
  322. 3220  NEXT I
  323. 3230  NEXT J
  324. 3240  FOR I = 1 TO 26
  325. 3250  INPUT A$(I)
  326. 3260  NEXT I
  327. 3270  PRINT D$;"CLOSE"DS$
  328. 3280  RETURN 
  329. 3290  REM  *** ERROR ROUTINE ***
  330. 3300  POKE 216,0:ER =  PEEK(222):EL =  PEEK(218) +256 * PEEK(219):EZ = EF:EF = 0: CALL  -3288
  331. 3310  IF ER = 4  THEN 3360
  332. 3320  IF ER = 6  OR ER = 5  THEN 3370
  333. 3330  IF ER = 10  AND EZ = 2  THEN 3380
  334. 3340  IF ER = 53  AND EZ = 3  THEN 3390
  335. 3350  POKE 34,0: HOME : VTAB 12: PRINT "ERROR "ER" HAS BEEN ENCOUNTERED": PRINT "IN LINE "EL: PRINT : GOTO 3410
  336. 3360  POKE 34,0: HOME : VTAB 12: HTAB 6: PRINT "WRITE PROTECT TAB ON DISKETTE!": PRINT : PRINT  TAB( 15)"PLEASE REMOVE": PRINT : GOTO 3410
  337. 3370  POKE 34,0: HOME : VTAB 12: HTAB 10: PRINT "NO PUZZLE BY THAT NAME!": PRINT : GOTO 3410
  338. 3380  POKE 34,0: HOME : VTAB 12: HTAB 15: PRINT "FILE LOCKED!": PRINT : PRINT  TAB( 5)"CHOOSE ANOTHER NAME FOR PUZZLE": PRINT : GOTO 3410
  339. 3390 R =  LEN(W$(K)):C =  LEN(W$(K)): ONERR  GOTO 3300
  340. 3400  GOTO 710
  341. 3410  PRINT D$"CLOSE": HTAB 8: PRINT "PRESS RETURN TO CONTINUE ";: GET SE$: PRINT : HOME : ONERR  GOTO 3300
  342. 3420  ON EZ GOTO 350,1140,710
  343. 3430  GOTO 350